iT邦幫忙

2022 iThome 鐵人賽

DAY 8
0

陣列是能夠存放多個相同型態資料的一種物件。
透過陣列的索引(index)並搭配迴圈敘述,可以輕鬆地存取裡面的元素(element),
而不必替所有資料宣告不同的變數。
它具有 get() 和 set() 函數,這些函數通過運算符重載約定變成 [] 和 size 屬性,以及其他有用的成員函數:

與JAVA不同之處
Kotlin的集合體系拋棄了Java集合體系中的Queue 集合,但增加了可變集合和不可變集合。

class Array<T> private constructor() {
    val size: Int
    operator fun get(index: Int): T
    operator fun set(index: Int, value: T): Unit

    operator fun iterator(): Iterator<T>
    // ...
}

要創建一個陣列,請使用函數 arrayOf() 並將項目值傳遞給它,
以便 arrayOf(1, 2, 3) 創建一個陣列 [1, 2, 3]。或者,arrayOfNulls() 函數可用於創建一個給定大小的陣列,其中填充了空元素。 另一種選擇是使用 Array 構造函數,該構造函數採用陣列大小和返回給定索引的陣列元素值的函數:

// Creates an Array<String> with values ["0", "1", "4", "9", "16"]
val asc = Array(5) { i -> (i * i).toString() }
asc.forEach { println(it) }

[] 操作代表對成員函數 get() 和 set() 的調用。 Kotlin 中的陣列是不變的。這意味著 Kotlin 不允許我們將 Array 分配給 Array,這可以防止可能的運行時失敗(但您可以使用 Array,請參閱類型投影)。

初始化陣列

Kotlin 還具有表示基本類型陣列而無需裝箱開銷的類:ByteArray、ShortArray、IntArray 等。這些類與 Array 類沒有繼承關係,但它們具有相同的方法和屬性集。它們中的每一個也都有對應的工廠函數:

val x: IntArray = intArrayOf(1, 2, 3)
x[0] = x[1] + x[2]

Reference


上一篇
[Day 7] 字符
下一篇
[Day9] 條件和循環
系列文
從0開始的Kotlin學習之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言